#pragma once

#include "stdafx.h"

namespace natrium {
	namespace input {
		class Keyboard {
		public:
			bool mKeyState[GLFW_KEY_LAST]; //boolean array; if a key is pressed, the relevant element becomes true

			Keyboard();
			virtual ~Keyboard();

			static void glfwKeyboardCallback(int key, int state);
		
			struct KeyPressed {
				int mKey;

				KeyPressed(int key);
			};

			struct KeyReleased {
				int mKey;

				KeyReleased(int key);
			};

			void operator()(const KeyPressed& kp);
			void operator()(const KeyReleased& kr);
		};
	}
}